package com.qf.service.impl;

import com.qf.dao.UserDao;
import com.qf.dao.impl.UserDaoImpl;
import com.qf.pojo.Admin;
import com.qf.pojo.PageBean;
import com.qf.pojo.User;
import com.qf.service.UserService;

import java.util.List;

/**
 * @Author:zhangyang
 * @Date: 11:56
 * @Version 1.0
 *
 *用户业务实现层
 */
public class UserServiceImpl implements UserService {


    private UserDao ud = new UserDaoImpl() ;
    /**
     * 查询客户列表
     * @return
     */
    @Override
    public List<User> getUserList() {

        return ud.selectUserList();
    }

    //管理员登录
    @Override
    public Admin login(Admin admin) {
      return   ud.selectAdmin(admin) ;
    }


    /**
     * 添加客户信息
     * @param user
     */
    @Override
    public void addUser(User user) {
        ud.add(user) ;
    }

    /**
     * 根据id删除用户
     * @param id
     */
    @Override
    public void delUserById(String id) {
        ud.delUser(Integer.parseInt(id)) ;
    }

    /**
     * 通过编号查询用户信息
     * @param id
     * @return
     */
    @Override
    public User findUserById(String id) {
        return ud.selectUserById(Integer.parseInt(id));
    }

    @Override
    public void updateUser(User user) {
        ud.update(user) ;
    }

    @Override
    public void delChecked(String[] uids) {

        //判断
        if (uids != null || uids.length > 0) {
            //遍历,删除
            for(String uid : uids){
                Integer id = Integer.parseInt(uid) ;
                ud.delUser(id);
            }
        }
    }

    //分页查询

    /**
     *
     * @param curPage  当前页码
     * @param pgSize   每页显示条数
     * @return  能够获取的分页实体
     */
    @Override
    public PageBean<User> findUserByPage(String curPage, String pgSize) {


        //创建分页实体
        PageBean<User> pageBean = new PageBean<User>() ;

        //将currentPage,pageSize转换成int类型
        int currentPage = Integer.parseInt(curPage) ;
        int pageSize =  Integer.parseInt(pgSize) ;

        //封装数据
        pageBean.setCurrentPage(currentPage);
        pageBean.setPageSize(pageSize);

        //总记录数
        //调用dao层:查询总记录数
        int totalCount = ud.getTotalCount() ;
        //封装总记录数
        pageBean.setTotalCount(totalCount);

        //总页数计算
        int totalPage  = (totalCount % pageSize ==0) ? (totalCount/pageSize) : ((totalCount/pageSize)+1) ;
        pageBean.setTotalPage(totalPage);

        //分页列表数据
        //调用dao:分页查询
        //起始行数,每页显示的条数---->select * from user limt ?,?
        //定义一个起始行数
        int start = (currentPage-1) * pageSize ;
        List<User> list = ud.findUserByPageList(start,pageSize) ;

        //封装用户分页的列表数据
        pageBean.setList(list);



        return pageBean;
    }
}
